﻿using BonjourQuotation.UI.Models.BaseModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Web;
using System.Web.WebPages.Html;

namespace BonjourQuotation.UI.Models.PartialModel
{
    public class OperationInvoiceViewModel : UserAllPermissionsViewModel
    {
        public int InvGroupID { get; set; }
        public string InvGroupCode { get; set; }
        public string InvGroupName { get; set; }
        public List<OperationInvoiceGridViewModel> Rows { get; set; }
        public string OperInvMessageInfo { get; set; }
        [DisplayName("Invoice No:")]
        public string InvoiceNo { get; set; }
        [DisplayName("Date:")]
        public string InvoiceDate { get; set; }
        [DisplayName("Payment Terms:")]
        public List<SelectListItem> InvPaymentTerms { get; set; }
        public List<SelectListItem> InvTypes { get; set; }
        public string SelectedInvPaymentTerms { get; set; }
        [DisplayName("Bank:")]
        public List<SelectListItem> InvBanks { get; set; }
        public string SelectedInvBank { get; set; } 
        [DisplayName("Proforma:")]
        public bool InvProforma { get; set; }
        [DisplayName("Invoice:")]
        public bool InvInvoice { get; set; }
        [DisplayName("Contact Person:")]
        public List<SelectListItem> InvContactPerson { get; set; }
        public string SelectedInvContactPerson { get; set; }
        [DisplayName("Sales Person:")]
        public List<SelectListItem> InvSalesPerson { get; set; }
        public string SelectedInvSalesPerson { get; set; }
        [DisplayName("Deposit Due:")]
        public string InvDepositDue { get; set; }
        [DisplayName("Final Payment:")]
        public string InvFinalPayment { get; set; }
        [DisplayName("20% or M:")]
        public bool InvDepositM { get; set; }
        public string InvDepositAmt { get; set; }

        [DisplayName("Invoice Comments:")]
        public string InvComments { get; set; }
        public bool? InvIsGroupGir { get; set; }
        public string InvGroupQuotaID { get; set; }
        [DisplayName("Proforma Comments:")]
        public string InvProfComments { get; set; }
        // Invoice Totals
        [DisplayName("Total Debit:")]
        public string InvTotalDebit { get; set; }
        [DisplayName("Total Credit:")]
        public string InvTotalCredit { get; set; }
        [DisplayName("Total Deposit:")]
        public string InvTotalDeposit { get; set; }
        [DisplayName("Amount Due:")]
        public string InvAmountDue { get; set; }
        [DisplayName("Total Refund:")]
        public string InvTotalRefund { get; set; }
        // Cad to USD
        [DisplayName("USD to CAD")]
        public string InvCadUsdRate { get; set; }

        // Group Cust Info, deletion
        public int InvoiceGroupID { get; set; }
        public int InvoiceCustomerID { get; set; }
        public int InvoiceLineNo { get; set; }
        [DisplayName("Customer:")]
        public string InvoiceCustomer { get; set; }
        [DisplayName("Group Name:")]
        public string InvoiceGroupName { get; set; }
        [DisplayName("Group Code:")]
        public string InvoiceGroupCode { get; set; }
        [DisplayName("Arrival Date:")]
        public string InvoiceArrivalDate { get; set; }
        [DisplayName("Currency Date:")]
        public string InvoiceRateChangeDate { get; set; }
        // Inv search
        public bool IsInvSearch { get; set; }
        public bool IsInvRemove { get; set; }
        public bool IsInvLoad { get; set; }
         
    }
    [Serializable]
    public class OperationInvoiceGridViewModel
    {
        public string InvLineNo { get; set; }
        public string InvSelType { get; set; }
        public string InvSelTypeID { get; set; }
        public string InvQty { get; set; }
        public string InvDescription { get; set; }
        public string InvCrDeb { get; set; }
        public string InvPrice { get; set; }
        public string InvPriceChange { get; set; }
        public string InvDebit { get; set; }
        public string InvCredit { get; set; }
        public string InvCurrency { get; set; }
        public string InvDeleteHtml { get; set; }

    }
}